package bean.model;

import java.io.Serializable;
import java.util.HashSet;
import java.util.Set;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.persistence.Transient;

@Entity
@Table(name="ListasPrecios")
public class ListaPrecios implements Serializable {
	
	public ListaPrecios() {
		super();
		this.items = new HashSet<itemListaPrecio>();
	}

	@Transient
	private static final long serialVersionUID = 1L;
	@Id 
	@GeneratedValue(strategy=GenerationType.AUTO)
	private Integer idListaPrecios;
	@ManyToOne (cascade=CascadeType.ALL)
	@JoinColumn (name = "idProveedor")
	private Proveedor proveedor;
	@OneToMany (cascade=CascadeType.ALL)
	@JoinTable(name = "ListasPrecios_Items", joinColumns = { @JoinColumn(name = "idListaPrecio") }, 
			   inverseJoinColumns = { @JoinColumn(name = "idItem") })
	private Set <itemListaPrecio> items;
	
	public void setItems(Set <itemListaPrecio> items) {
		this.items = items;
	}

	public Set <itemListaPrecio> getItems() {
		return items;
	}

	public void setProveedor(Proveedor proveedor) {
		this.proveedor = proveedor;
	}

	public Proveedor getProveedor() {
		return proveedor;
	}

	public void setIdListaPrecios(Integer id) {
		this.idListaPrecios = id;
	}

	public Integer getIdListaPrecios() {
		return idListaPrecios;
	}

	public void addItem(Rodamiento rodamiento, double precio) {
		itemListaPrecio item = new itemListaPrecio();
		item.setPrecio(precio);
		item.setRodamiento(rodamiento);
		this.items.add(item);
	}	
	
}
